﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;

namespace Framework
{
    public interface ICMSHost:ICMSServiceProvider
    {
        List<ICMSPlugin> Plugins
        {
            get;
            set;
        }

        List<string> MenuItems
        {
            get;
            set;
        }

        void RegisterPluginService(ICMSService pluginService);

        void Excute<T>(Action<T> serviceAction)
            where T:ICMSService;

        TResult Excute<T, TResult>(Func<T, TResult> serviceFunc)
            where T : ICMSService;
    }
}
